Page({
  data: {
    resumes: [],
    student_id: '',
    role: '', // 用户角色
    studentList: [], // 学生列表
    selectedStudentIndex: -1, // 选中的学生索引
    selectedStudentUsername: '', // 选中的学生
  },

  onLoad: function () {
    var student_id = wx.getStorageSync('username');
    var role = wx.getStorageSync('role');
    // 获取当前用户角色
    if (role) {
      this.setData({
        role: role
      });
    }
    // 获取当前用户名
    if (student_id) {
      this.setData({
        student_id: student_id
      });
    }
    this.loadResumes();
    this.fetchStudents(); // 获取所有学生列表
  },

  //获取所有学生
  fetchStudents: function () {
    wx.request({
      url: 'http://192.168.172.134:5000/api/getAllStudents',
      method: 'GET',
      success: (res) => {
        if (res.data.code === 200) {
          this.setData({
            studentList: res.data.data
          });
        } else {
          wx.showToast({
            title: '获取学生列表失败',
            icon: 'none'
          });
        }
      },
      fail: () => {
        wx.showToast({
          title: '网络请求失败',
          icon: 'none'
        });
      }
    });
  },

  // 新增选择学生处理方法
  onStudentChange: function (e) {
    const index = e.detail.value;
    const selected = this.data.studentList[index];
    this.setData({
      selectedStudentIndex: index,
      selectedStudentUsername: selected.username
    });
    this.loadResumes(); // 重新加载简历
  },

  loadResumes() {
    wx.showLoading({
      title: '加载中'
    });
    let data = {};
    if (this.data.role === '学生') {
      data = {
        student_id: this.data.student_id // 传递当前用户名
      };
    } else if (this.data.role === '班主任') {
      data = {
        student_id: this.data.selectedStudentUsername // 传递选中的学生用户名
      };
    }
    wx.request({
      url: 'http://192.168.172.134:5000/api/resumes',
      method: 'GET',
      data: data,
      success: (res) => {
        if (res.data.code === 200) {
          this.setData({
            resumes: res.data.data
          })
        }
      },
      complete: () => wx.hideLoading()
    });
    console.log('简历数据加载完成', this.data.resumes);

  },

  formatTime(timestamp) {
    const date = new Date(parseInt(timestamp));
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    return `${year}-${month}-${day}`;
  },

  createResume() {
    wx.navigateTo({
      url: '/pages/resume_editor/resume_editor'
    })
  },

  editResume(e) {
    const id = e.currentTarget.dataset.id
    // wx.navigateTo({
    //   url: `/pages/resume_editor/resume_editor?id=${id}`
    // })
    wx.showModal({
      title: '确认删除',
      content: '确定删除该简历吗？',
      complete: (res) => {
        if (res.confirm) {
          wx.request({
            url: `http://192.168.172.134:5000/api/deleteResume/${id}`,
            method: 'GET',
            data: {
              id
            },
            success: (res) => {
              if (res.data.code === 200) {
                this.loadResumes();
                wx.showToast({
                  title: '删除成功',
                })
              }
            }
          })
        }
      }
    })
  },

  exportResume(e) {
    const id = e.currentTarget.dataset.id;
    // 根据id找到对应的简历对象
    const resume = this.data.resumes.find(item => item.id === id);
    if (!resume || !resume.filePath) {
      wx.showToast({
        title: '文件路径错误',
        icon: 'error'
      });
      return;
    }

    wx.showLoading({
      title: '下载中...'
    });

    // 下载文件
    wx.downloadFile({
      url: resume.filePath, // 后端返回的完整文件路径（如：http://xxx.pdf）
      success: (res) => {
        // 下载完成后，用微信内置文档打开
        wx.openDocument({
          filePath: res.tempFilePath, // 临时文件路径
          showMenu: true, // 显示右上角菜单（可分享、保存到手机）
          success: () => {
            wx.showToast({
              title: '下载成功'
            });
          },
          fail: (err) => {
            wx.showToast({
              title: '打开文件失败',
              icon: 'error'
            });
          }
        });
      },
      fail: (err) => {
        wx.showToast({
          title: '下载失败',
          icon: 'error'
        });
      },
      complete: () => wx.hideLoading()
    });
  }
})